#include <sys/stat.h>
#include <stdio.h>
#include <errno.h>
void  main(int argc,char *argv[])
{
    struct stat buf;
    int res = stat(argv[1], &buf);
    if(res != 0)
    {
        printf("stat file fail!\n");
    }
    else
    {
        printf("文件的设备编号:%d\n",(int)buf.st_dev);
        printf("节点 :%d\n",(int)buf.st_ino);
        printf("文件的类型和存取的权限:%d\n",(int)buf.st_mode);
        printf("连到该文件的硬连接数目:%d\n",(int)buf.st_nlink);
        printf("用户ID:%d\n",(int)buf.st_uid);
        printf("组ID:%d\n",(int)buf.st_gid);
        printf("设备类型:%d\n",(int)buf.st_rdev);
        printf("文件字节数:%d\n",(int)buf.st_size);
        printf("块大小:%d\n",(int)buf.st_blksize);
        printf("块数:%d\n",(int)buf.st_blocks);
        printf("最后一次访问时间:%d\n",(int)buf.st_atime);
        printf("最后一次修改时间 :%d\n",(int)buf.st_mtime);
        printf("最后一次改变时间 :%d\n",(int)buf.st_ctime);
    }
    return 0;
}
/*
struct stat { 
    dev_t         st_dev;       //文件的设备编号 
    ino_t         st_ino;         //节点 
    mode_t        st_mode;   //文件的类型和存取的权限 
    nlink_t       st_nlink;      //连到该文件的硬连接数目，刚建立的文件值为1 
    uid_t         st_uid;        //用户ID 
    gid_t         st_gid;        //组ID 
    dev_t         st_rdev;     //(设备类型)若此文件为设备文件，则为其设备编号 
    off_t         st_size;       //文件字节数(文件大小) 
    unsigned long st_blksize;   //块大小(文件系统的I/O 缓冲区大小) 
    unsigned long st_blocks;   //块数 
    time_t        st_atime;      //最后一次访问时间 
    time_t        st_mtime;     //最后一次修改时间 
    time_t        st_ctime;     //最后一次改变时间(指属性) 
};
*/
